Modern computing devices including tablets, laptops, mobile Internet devices (MID), smartphones, and/or the like may typically be equipped with heterogeneous processing engines. For example, such heterogeneous processing engines might include a primary central processing unit (CPU), assistant CPU (e.g., as may be common in smart phone implementations), a graphics processing unit (GPU), a digital signal processor (DSP), the like, and/or combinations thereof.
The determination of which computing operations would happen on which processing engines is currently defined at design time (e.g., defined at the time of designing a given active application) instead of run time (e.g., decided at the time of designing a given active application). In some situations, computing might run faster on GPU but also might consume more power as compared to a CPU, or the other way round. Computing might also run faster if executed both at a CPU and a GPU instead of just at the CPU or just at the GPU. Accordingly, a given active application might have been adapted at design time to have a predetermined assignment of which computing operations would happen on which processing engines.